home *** CD-ROM | disk | FTP | other *** search
- Main changes since make 3.61:
-
- * Make now uses a standard GNU `configure' script. See the new file
- INSTALL for the new (and much simpler) installation procedure.
-
- * There is now a shell script to build Make the first time, if you have no
- other `make' program. `build.sh' is created by `configure'; see README.
-
- * GNU Make now completely conforms to the POSIX.2 specification for `make'.
-
- * Elements of the `$^' and `$?' automatic variables that are archive
- member references now list only the member name, as in Unix and POSIX.2.
-
- * You should no longer ever need to specify the `-w' switch, which prints
- the current directory before and after Make runs. The `-C' switch to
- change directory, and recursive use of Make, now set `-w' automatically.
-
- * Multiple double-colon rules for the same target will no longer have their
- commands run simultaneously under -j, as this could result in the two
- commands trying to change the file at the same time and interfering with
- one another.
-
- * The `SHELL' variable is now never taken from the environment.
- Each makefile that wants a shell other than the default (/bin/sh) must
- set SHELL itself. SHELL is always exported to child processes.
- This change was made for compatibility with POSIX.2.
-
- * Make now accepts long options. There is now an informative usage message
- that tells you what all the options are and what they do. Try `make --help'.
-
- * There are two new directives: `export' and `unexport'. All variables are
- no longer automatically put into the environments of the commands that
- Make runs. Instead, only variables specified on the command line or in
- the environment are exported by default. To export others, use:
- export VARIABLE
- or you can define variables with:
- export VARIABLE = VALUE
- or:
- export VARIABLE := VALUE
- You can use just:
- export
- or:
- .EXPORT_ALL_VARIABLES:
- to get the old behavior. See the node `Variables/Recursion' in the manual
- for a full description.
-
- * The commands from the `.DEFAULT' special target are only applied to
- targets which have no rules at all, not all targets with no commands.
- This change was made for compatibility with Unix make.
-
- * All fatal error messages now contain `***', so they are easy to find in
- compilation logs.
-
- * Dependency file names like `-lNAME' are now replaced with the actual file
- name found, as with files found by normal directory search (VPATH).
- The library file `libNAME.a' may now be found in the current directory,
- which is checked before VPATH; the standard set of directories (/lib,
- /usr/lib, /usr/local/lib) is now checked last.
- See the node `Libraries/Search' in the manual for full details.
-
- * A single `include' directive can now specify more than one makefile to
- include, like this:
- include file1 file2
- You can also use shell file name patterns in an `include' directive:
- include *.mk
-
- * The default directories to search for included makefiles, and for
- libraries specified with `-lNAME', are now set by configuration.
-
- * You can now use blanks as well as colons to separate the directories in a
- search path for the `vpath' directive or the `VPATH' variable.
-
- * You can now use variables and functions in the left hand side of a
- variable assignment, as in "$(foo)bar = value".
-
- * The `MAKE' variable is always defined as `$(MAKE_COMMAND) $(MAKEOVERRIDES)'.
- The `MAKE_COMMAND' variable is now defined to the name with which make
- was invoked.
-
- * The built-in rules for C++ compilation now use the variables `$(CXX)' and
- `$(CXXFLAGS)' instead of `$(C++)' and `$(C++FLAGS)'. The old names had
- problems with shells that cannot have `+' in environment variable names.
-
- * The value of a recursively expanded variable is now expanded when putting
- it into the environment for child processes. This change was made for
- compatibility with Unix make.
-
- * A rule with no targets before the `:' is now accepted and ignored.
- This change was made for compatibility with SunOS 4 make.
- We do not recommend that you write your makefiles to take advantage of this.
-
- * The `-I' switch can now be used in MAKEFLAGS, and are put there
- automatically just like other switches.
-
- Changes made to the normal make:
- - configured not to use getgroups()
- - configured not to use getloadaverage()
- - changed to read both DOS and Unix-format makefiles properly
- The only changes made were in read.c [fopen(x, "r") -> fopen(x, "rt")].
- The configuration stuff was changed in the config.h produced by configure.
-
- While this make works fine for me, under MiNT 0.96 and 0.99, I cannot
- guarantee it to work under TOS. I also did not test the extended
- functionality like doing several things in parallel. If this doesn't
- work, you're on your own!
-
- Comments, bug-reports, requests to:
- Hildo Biersma
- boender@dutiws.twi.tudelft.nl
-